Skip to content

Conversation

rebkwok
Copy link

@rebkwok rebkwok commented Feb 22, 2024

Thanks for this plugin, which did almost exactly what we needed, apart from one issue, which this PR is an attempt to address.

The issue we had was that our project is using slippers, which means we have component tags in our templates with start/end block tags that don't follow the usual django convention for the end tag ({% end<...> %}). Instead they look something like

{% #card %}
...
{% /card %}

This means that any component end tag on its own line gets marked as uncovered.

This PR adds a config option exclude_blocks which takes a list of regexes, similar to exclude_also in the main coverage config, and allow us to specify patterns to match and exclude the content of block tags. With the following pyproject.toml config, we can now exclude any block tags that start with "/" (ie slippers component end tags).

[tool.coverage.django_coverage_plugin]
template_extensions = "html"
exclude_blocks = [
    "\\/\\w+"
]

I didn't add a similar exclude option for text tags because there's additional complexity there since a text tag can span multiple lines (and I haven't seen issues that suggest it's a feature anyone needs yet)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant